1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.glib.gunicode;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.gerror;
34 import core.stdc.config;
35 
36 extern (C):
37 
38 alias uint gunichar;
39 alias ushort gunichar2;
40 alias _Anonymous_0 GUnicodeType;
41 alias _Anonymous_1 GUnicodeBreakType;
42 alias _Anonymous_2 GUnicodeScript;
43 alias _Anonymous_3 GNormalizeMode;
44 
45 version(Derelict_Link_Static)
46 {
47     extern( C ) nothrow 
48     {
49         const gchar* g_utf8_skip();
50     }
51 }
52 else
53 {
54     extern( C ) nothrow 
55     {
56         alias da_g_utf8_skip = const gchar*;
57     }
58 
59     __gshared
60     {
61         da_g_utf8_skip g_utf8_skip;
62     }
63 }
64 
65 
66 enum _Anonymous_0
67 {
68 	G_UNICODE_CONTROL = 0,
69 	G_UNICODE_FORMAT = 1,
70 	G_UNICODE_UNASSIGNED = 2,
71 	G_UNICODE_PRIVATE_USE = 3,
72 	G_UNICODE_SURROGATE = 4,
73 	G_UNICODE_LOWERCASE_LETTER = 5,
74 	G_UNICODE_MODIFIER_LETTER = 6,
75 	G_UNICODE_OTHER_LETTER = 7,
76 	G_UNICODE_TITLECASE_LETTER = 8,
77 	G_UNICODE_UPPERCASE_LETTER = 9,
78 	G_UNICODE_SPACING_MARK = 10,
79 	G_UNICODE_ENCLOSING_MARK = 11,
80 	G_UNICODE_NON_SPACING_MARK = 12,
81 	G_UNICODE_DECIMAL_NUMBER = 13,
82 	G_UNICODE_LETTER_NUMBER = 14,
83 	G_UNICODE_OTHER_NUMBER = 15,
84 	G_UNICODE_CONNECT_PUNCTUATION = 16,
85 	G_UNICODE_DASH_PUNCTUATION = 17,
86 	G_UNICODE_CLOSE_PUNCTUATION = 18,
87 	G_UNICODE_FINAL_PUNCTUATION = 19,
88 	G_UNICODE_INITIAL_PUNCTUATION = 20,
89 	G_UNICODE_OTHER_PUNCTUATION = 21,
90 	G_UNICODE_OPEN_PUNCTUATION = 22,
91 	G_UNICODE_CURRENCY_SYMBOL = 23,
92 	G_UNICODE_MODIFIER_SYMBOL = 24,
93 	G_UNICODE_MATH_SYMBOL = 25,
94 	G_UNICODE_OTHER_SYMBOL = 26,
95 	G_UNICODE_LINE_SEPARATOR = 27,
96 	G_UNICODE_PARAGRAPH_SEPARATOR = 28,
97 	G_UNICODE_SPACE_SEPARATOR = 29
98 }
99 
100 enum _Anonymous_1
101 {
102 	G_UNICODE_BREAK_MANDATORY = 0,
103 	G_UNICODE_BREAK_CARRIAGE_RETURN = 1,
104 	G_UNICODE_BREAK_LINE_FEED = 2,
105 	G_UNICODE_BREAK_COMBINING_MARK = 3,
106 	G_UNICODE_BREAK_SURROGATE = 4,
107 	G_UNICODE_BREAK_ZERO_WIDTH_SPACE = 5,
108 	G_UNICODE_BREAK_INSEPARABLE = 6,
109 	G_UNICODE_BREAK_NON_BREAKING_GLUE = 7,
110 	G_UNICODE_BREAK_CONTINGENT = 8,
111 	G_UNICODE_BREAK_SPACE = 9,
112 	G_UNICODE_BREAK_AFTER = 10,
113 	G_UNICODE_BREAK_BEFORE = 11,
114 	G_UNICODE_BREAK_BEFORE_AND_AFTER = 12,
115 	G_UNICODE_BREAK_HYPHEN = 13,
116 	G_UNICODE_BREAK_NON_STARTER = 14,
117 	G_UNICODE_BREAK_OPEN_PUNCTUATION = 15,
118 	G_UNICODE_BREAK_CLOSE_PUNCTUATION = 16,
119 	G_UNICODE_BREAK_QUOTATION = 17,
120 	G_UNICODE_BREAK_EXCLAMATION = 18,
121 	G_UNICODE_BREAK_IDEOGRAPHIC = 19,
122 	G_UNICODE_BREAK_NUMERIC = 20,
123 	G_UNICODE_BREAK_INFIX_SEPARATOR = 21,
124 	G_UNICODE_BREAK_SYMBOL = 22,
125 	G_UNICODE_BREAK_ALPHABETIC = 23,
126 	G_UNICODE_BREAK_PREFIX = 24,
127 	G_UNICODE_BREAK_POSTFIX = 25,
128 	G_UNICODE_BREAK_COMPLEX_CONTEXT = 26,
129 	G_UNICODE_BREAK_AMBIGUOUS = 27,
130 	G_UNICODE_BREAK_UNKNOWN = 28,
131 	G_UNICODE_BREAK_NEXT_LINE = 29,
132 	G_UNICODE_BREAK_WORD_JOINER = 30,
133 	G_UNICODE_BREAK_HANGUL_L_JAMO = 31,
134 	G_UNICODE_BREAK_HANGUL_V_JAMO = 32,
135 	G_UNICODE_BREAK_HANGUL_T_JAMO = 33,
136 	G_UNICODE_BREAK_HANGUL_LV_SYLLABLE = 34,
137 	G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE = 35,
138 	G_UNICODE_BREAK_CLOSE_PARANTHESIS = 36,
139 	G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER = 37,
140 	G_UNICODE_BREAK_HEBREW_LETTER = 38
141 }
142 
143 enum _Anonymous_2
144 {
145 	G_UNICODE_SCRIPT_INVALID_CODE = -1,
146 	G_UNICODE_SCRIPT_COMMON = 0,
147 	G_UNICODE_SCRIPT_INHERITED = 1,
148 	G_UNICODE_SCRIPT_ARABIC = 2,
149 	G_UNICODE_SCRIPT_ARMENIAN = 3,
150 	G_UNICODE_SCRIPT_BENGALI = 4,
151 	G_UNICODE_SCRIPT_BOPOMOFO = 5,
152 	G_UNICODE_SCRIPT_CHEROKEE = 6,
153 	G_UNICODE_SCRIPT_COPTIC = 7,
154 	G_UNICODE_SCRIPT_CYRILLIC = 8,
155 	G_UNICODE_SCRIPT_DESERET = 9,
156 	G_UNICODE_SCRIPT_DEVANAGARI = 10,
157 	G_UNICODE_SCRIPT_ETHIOPIC = 11,
158 	G_UNICODE_SCRIPT_GEORGIAN = 12,
159 	G_UNICODE_SCRIPT_GOTHIC = 13,
160 	G_UNICODE_SCRIPT_GREEK = 14,
161 	G_UNICODE_SCRIPT_GUJARATI = 15,
162 	G_UNICODE_SCRIPT_GURMUKHI = 16,
163 	G_UNICODE_SCRIPT_HAN = 17,
164 	G_UNICODE_SCRIPT_HANGUL = 18,
165 	G_UNICODE_SCRIPT_HEBREW = 19,
166 	G_UNICODE_SCRIPT_HIRAGANA = 20,
167 	G_UNICODE_SCRIPT_KANNADA = 21,
168 	G_UNICODE_SCRIPT_KATAKANA = 22,
169 	G_UNICODE_SCRIPT_KHMER = 23,
170 	G_UNICODE_SCRIPT_LAO = 24,
171 	G_UNICODE_SCRIPT_LATIN = 25,
172 	G_UNICODE_SCRIPT_MALAYALAM = 26,
173 	G_UNICODE_SCRIPT_MONGOLIAN = 27,
174 	G_UNICODE_SCRIPT_MYANMAR = 28,
175 	G_UNICODE_SCRIPT_OGHAM = 29,
176 	G_UNICODE_SCRIPT_OLD_ITALIC = 30,
177 	G_UNICODE_SCRIPT_ORIYA = 31,
178 	G_UNICODE_SCRIPT_RUNIC = 32,
179 	G_UNICODE_SCRIPT_SINHALA = 33,
180 	G_UNICODE_SCRIPT_SYRIAC = 34,
181 	G_UNICODE_SCRIPT_TAMIL = 35,
182 	G_UNICODE_SCRIPT_TELUGU = 36,
183 	G_UNICODE_SCRIPT_THAANA = 37,
184 	G_UNICODE_SCRIPT_THAI = 38,
185 	G_UNICODE_SCRIPT_TIBETAN = 39,
186 	G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL = 40,
187 	G_UNICODE_SCRIPT_YI = 41,
188 	G_UNICODE_SCRIPT_TAGALOG = 42,
189 	G_UNICODE_SCRIPT_HANUNOO = 43,
190 	G_UNICODE_SCRIPT_BUHID = 44,
191 	G_UNICODE_SCRIPT_TAGBANWA = 45,
192 	G_UNICODE_SCRIPT_BRAILLE = 46,
193 	G_UNICODE_SCRIPT_CYPRIOT = 47,
194 	G_UNICODE_SCRIPT_LIMBU = 48,
195 	G_UNICODE_SCRIPT_OSMANYA = 49,
196 	G_UNICODE_SCRIPT_SHAVIAN = 50,
197 	G_UNICODE_SCRIPT_LINEAR_B = 51,
198 	G_UNICODE_SCRIPT_TAI_LE = 52,
199 	G_UNICODE_SCRIPT_UGARITIC = 53,
200 	G_UNICODE_SCRIPT_NEW_TAI_LUE = 54,
201 	G_UNICODE_SCRIPT_BUGINESE = 55,
202 	G_UNICODE_SCRIPT_GLAGOLITIC = 56,
203 	G_UNICODE_SCRIPT_TIFINAGH = 57,
204 	G_UNICODE_SCRIPT_SYLOTI_NAGRI = 58,
205 	G_UNICODE_SCRIPT_OLD_PERSIAN = 59,
206 	G_UNICODE_SCRIPT_KHAROSHTHI = 60,
207 	G_UNICODE_SCRIPT_UNKNOWN = 61,
208 	G_UNICODE_SCRIPT_BALINESE = 62,
209 	G_UNICODE_SCRIPT_CUNEIFORM = 63,
210 	G_UNICODE_SCRIPT_PHOENICIAN = 64,
211 	G_UNICODE_SCRIPT_PHAGS_PA = 65,
212 	G_UNICODE_SCRIPT_NKO = 66,
213 	G_UNICODE_SCRIPT_KAYAH_LI = 67,
214 	G_UNICODE_SCRIPT_LEPCHA = 68,
215 	G_UNICODE_SCRIPT_REJANG = 69,
216 	G_UNICODE_SCRIPT_SUNDANESE = 70,
217 	G_UNICODE_SCRIPT_SAURASHTRA = 71,
218 	G_UNICODE_SCRIPT_CHAM = 72,
219 	G_UNICODE_SCRIPT_OL_CHIKI = 73,
220 	G_UNICODE_SCRIPT_VAI = 74,
221 	G_UNICODE_SCRIPT_CARIAN = 75,
222 	G_UNICODE_SCRIPT_LYCIAN = 76,
223 	G_UNICODE_SCRIPT_LYDIAN = 77,
224 	G_UNICODE_SCRIPT_AVESTAN = 78,
225 	G_UNICODE_SCRIPT_BAMUM = 79,
226 	G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS = 80,
227 	G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC = 81,
228 	G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI = 82,
229 	G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN = 83,
230 	G_UNICODE_SCRIPT_JAVANESE = 84,
231 	G_UNICODE_SCRIPT_KAITHI = 85,
232 	G_UNICODE_SCRIPT_LISU = 86,
233 	G_UNICODE_SCRIPT_MEETEI_MAYEK = 87,
234 	G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN = 88,
235 	G_UNICODE_SCRIPT_OLD_TURKIC = 89,
236 	G_UNICODE_SCRIPT_SAMARITAN = 90,
237 	G_UNICODE_SCRIPT_TAI_THAM = 91,
238 	G_UNICODE_SCRIPT_TAI_VIET = 92,
239 	G_UNICODE_SCRIPT_BATAK = 93,
240 	G_UNICODE_SCRIPT_BRAHMI = 94,
241 	G_UNICODE_SCRIPT_MANDAIC = 95,
242 	G_UNICODE_SCRIPT_CHAKMA = 96,
243 	G_UNICODE_SCRIPT_MEROITIC_CURSIVE = 97,
244 	G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS = 98,
245 	G_UNICODE_SCRIPT_MIAO = 99,
246 	G_UNICODE_SCRIPT_SHARADA = 100,
247 	G_UNICODE_SCRIPT_SORA_SOMPENG = 101,
248 	G_UNICODE_SCRIPT_TAKRI = 102
249 }
250 
251 enum _Anonymous_3
252 {
253 	G_NORMALIZE_DEFAULT = 0,
254 	G_NORMALIZE_NFD = 0,
255 	G_NORMALIZE_DEFAULT_COMPOSE = 1,
256 	G_NORMALIZE_NFC = 1,
257 	G_NORMALIZE_ALL = 2,
258 	G_NORMALIZE_NFKD = 2,
259 	G_NORMALIZE_ALL_COMPOSE = 3,
260 	G_NORMALIZE_NFKC = 3
261 }
262 
263 version(Derelict_Link_Static)
264 {
265     extern( C ) nothrow 
266     {
267 	    guint32 g_unicode_script_to_iso15924(GUnicodeScript script);
268         GUnicodeScript g_unicode_script_from_iso15924(guint32 iso15924);
269         gboolean g_unichar_isalnum(gunichar c);
270         gboolean g_unichar_isalpha(gunichar c);
271         gboolean g_unichar_iscntrl(gunichar c);
272         gboolean g_unichar_isdigit(gunichar c);
273         gboolean g_unichar_isgraph(gunichar c);
274         gboolean g_unichar_islower(gunichar c);
275         gboolean g_unichar_isprint(gunichar c);
276         gboolean g_unichar_ispunct(gunichar c);
277         gboolean g_unichar_isspace(gunichar c);
278         gboolean g_unichar_isupper(gunichar c);
279         gboolean g_unichar_isxdigit(gunichar c);
280         gboolean g_unichar_istitle(gunichar c);
281         gboolean g_unichar_isdefined(gunichar c);
282         gboolean g_unichar_iswide(gunichar c);
283         gboolean g_unichar_iswide_cjk(gunichar c);
284         gboolean g_unichar_iszerowidth(gunichar c);
285         gboolean g_unichar_ismark(gunichar c);
286         gunichar g_unichar_toupper(gunichar c);
287         gunichar g_unichar_tolower(gunichar c);
288         gunichar g_unichar_totitle(gunichar c);
289         gint g_unichar_digit_value(gunichar c);
290         gint g_unichar_xdigit_value(gunichar c);
291         GUnicodeType g_unichar_type(gunichar c);
292         GUnicodeBreakType g_unichar_break_type(gunichar c);
293         gint g_unichar_combining_class(gunichar uc);
294         gboolean g_unichar_get_mirror_char(gunichar ch, gunichar* mirrored_ch);
295         GUnicodeScript g_unichar_get_script(gunichar ch);
296         gboolean g_unichar_validate(gunichar ch);
297         gboolean g_unichar_compose(gunichar a, gunichar b, gunichar* ch);
298         gboolean g_unichar_decompose(gunichar ch, gunichar* a, gunichar* b);
299         gsize g_unichar_fully_decompose(gunichar ch, gboolean compat, gunichar* result, gsize result_len);
300         void g_unicode_canonical_ordering(gunichar* string, gsize len);
301         gunichar* g_unicode_canonical_decomposition(gunichar ch, gsize* result_len);
302         gunichar g_utf8_get_char(const(gchar)* p);
303         gunichar g_utf8_get_char_validated(const(gchar)* p, gssize max_len);
304         gchar* g_utf8_offset_to_pointer(const(gchar)* str, glong offset);
305         glong g_utf8_pointer_to_offset(const(gchar)* str, const(gchar)* pos);
306         gchar* g_utf8_prev_char(const(gchar)* p);
307         gchar* g_utf8_find_next_char(const(gchar)* p, const(gchar)* end);
308         gchar* g_utf8_find_prev_char(const(gchar)* str, const(gchar)* p);
309         glong g_utf8_strlen(const(gchar)* p, gssize max);
310         gchar* g_utf8_substring(const(gchar)* str, glong start_pos, glong end_pos);
311         gchar* g_utf8_strncpy(gchar* dest, const(gchar)* src, gsize n);
312         gchar* g_utf8_strchr(const(gchar)* p, gssize len, gunichar c);
313         gchar* g_utf8_strrchr(const(gchar)* p, gssize len, gunichar c);
314         gchar* g_utf8_strreverse(const(gchar)* str, gssize len);
315         gunichar2* g_utf8_to_utf16(const(gchar)* str, glong len, glong* items_read, glong* items_written, GError** error);
316         gunichar* g_utf8_to_ucs4(const(gchar)* str, glong len, glong* items_read, glong* items_written, GError** error);
317         gunichar* g_utf8_to_ucs4_fast(const(gchar)* str, glong len, glong* items_written);
318         gunichar* g_utf16_to_ucs4(const(gunichar2)* str, glong len, glong* items_read, glong* items_written, GError** error);
319         gchar* g_utf16_to_utf8(const(gunichar2)* str, glong len, glong* items_read, glong* items_written, GError** error);
320         gunichar2* g_ucs4_to_utf16(const(gunichar)* str, glong len, glong* items_read, glong* items_written, GError** error);
321         gchar* g_ucs4_to_utf8(const(gunichar)* str, glong len, glong* items_read, glong* items_written, GError** error);
322         gint g_unichar_to_utf8(gunichar c, gchar* outbuf);
323         gboolean g_utf8_validate(const(gchar)* str, gssize max_len, const(gchar*)* end);
324         gchar* g_utf8_strup(const(gchar)* str, gssize len);
325         gchar* g_utf8_strdown(const(gchar)* str, gssize len);
326         gchar* g_utf8_casefold(const(gchar)* str, gssize len);
327         gchar* g_utf8_normalize(const(gchar)* str, gssize len, GNormalizeMode mode);
328         gint g_utf8_collate(const(gchar)* str1, const(gchar)* str2);
329         gchar* g_utf8_collate_key(const(gchar)* str, gssize len);
330         gchar* g_utf8_collate_key_for_filename(const(gchar)* str, gssize len);
331         gchar* _g_utf8_make_valid(const(gchar)* name);
332     }
333 }
334 else
335 {
336     extern( C ) nothrow 
337     {
338 	    alias da_g_unicode_script_to_iso15924 = guint32 function(GUnicodeScript script);																	
339         alias da_g_unicode_script_from_iso15924 = GUnicodeScript function(guint32 iso15924);																
340         alias da_g_unichar_isalnum = gboolean function(gunichar c);																							
341         alias da_g_unichar_isalpha = gboolean function(gunichar c);																							
342         alias da_g_unichar_iscntrl = gboolean function(gunichar c);																							
343         alias da_g_unichar_isdigit = gboolean function(gunichar c);																							
344         alias da_g_unichar_isgraph = gboolean function(gunichar c);																							
345         alias da_g_unichar_islower = gboolean function(gunichar c);																							
346         alias da_g_unichar_isprint = gboolean function(gunichar c);																							
347         alias da_g_unichar_ispunct = gboolean function(gunichar c);																							
348         alias da_g_unichar_isspace = gboolean function(gunichar c);																							
349         alias da_g_unichar_isupper = gboolean function(gunichar c);																							
350         alias da_g_unichar_isxdigit = gboolean function(gunichar c);																						
351         alias da_g_unichar_istitle = gboolean function(gunichar c);																							
352         alias da_g_unichar_isdefined = gboolean function(gunichar c);																						
353         alias da_g_unichar_iswide = gboolean function(gunichar c);																							
354         alias da_g_unichar_iswide_cjk = gboolean function(gunichar c);																						
355         alias da_g_unichar_iszerowidth = gboolean function(gunichar c);																						
356         alias da_g_unichar_ismark = gboolean function(gunichar c);																							
357         alias da_g_unichar_toupper = gunichar function(gunichar c);																							
358         alias da_g_unichar_tolower = gunichar function(gunichar c);																							
359         alias da_g_unichar_totitle = gunichar function(gunichar c);																							
360         alias da_g_unichar_digit_value = gint function(gunichar c);																							
361         alias da_g_unichar_xdigit_value = gint function(gunichar c);																						
362         alias da_g_unichar_type = GUnicodeType function(gunichar c);																						
363         alias da_g_unichar_break_type = GUnicodeBreakType function(gunichar c);																				
364         alias da_g_unichar_combining_class = gint function(gunichar uc);																					
365         alias da_g_unichar_get_mirror_char = gboolean function(gunichar ch, gunichar* mirrored_ch);															
366         alias da_g_unichar_get_script = GUnicodeScript function(gunichar ch);																				
367         alias da_g_unichar_validate = gboolean function(gunichar ch);																						
368         alias da_g_unichar_compose = gboolean function(gunichar a, gunichar b, gunichar* ch);																
369         alias da_g_unichar_decompose = gboolean function(gunichar ch, gunichar* a, gunichar* b);															
370         alias da_g_unichar_fully_decompose = gsize function(gunichar ch, gboolean compat, gunichar* result, gsize result_len);								
371         alias da_g_unicode_canonical_ordering = void function(gunichar* string, gsize len);																	
372         alias da_g_unicode_canonical_decomposition = gunichar* function(gunichar ch, gsize* result_len);													
373         alias da_g_utf8_get_char = gunichar function(const(gchar)* p);																						
374         alias da_g_utf8_get_char_validated = gunichar function(const(gchar)* p, gssize max_len);															
375         alias da_g_utf8_offset_to_pointer = gchar* function(const(gchar)* str, glong offset);																
376         alias da_g_utf8_pointer_to_offset = glong function(const(gchar)* str, const(gchar)* pos);															
377         alias da_g_utf8_prev_char = gchar* function(const(gchar)* p);																						
378         alias da_g_utf8_find_next_char = gchar* function(const(gchar)* p, const(gchar)* end);																
379         alias da_g_utf8_find_prev_char = gchar* function(const(gchar)* str, const(gchar)* p);																
380         alias da_g_utf8_strlen = glong function(const(gchar)* p, gssize max);																				
381         alias da_g_utf8_substring = gchar* function(const(gchar)* str, glong start_pos, glong end_pos);														
382         alias da_g_utf8_strncpy = gchar* function(gchar* dest, const(gchar)* src, gsize n);																	
383         alias da_g_utf8_strchr = gchar* function(const(gchar)* p, gssize len, gunichar c);																	
384         alias da_g_utf8_strrchr = gchar* function(const(gchar)* p, gssize len, gunichar c);																	
385         alias da_g_utf8_strreverse = gchar* function(const(gchar)* str, gssize len);																		
386         alias da_g_utf8_to_utf16 = gunichar2* function(const(gchar)* str, glong len, glong* items_read, glong* items_written, GError** error);				
387         alias da_g_utf8_to_ucs4 = gunichar* function(const(gchar)* str, glong len, glong* items_read, glong* items_written, GError** error);				
388         alias da_g_utf8_to_ucs4_fast = gunichar* function(const(gchar)* str, glong len, glong* items_written);												
389         alias da_g_utf16_to_ucs4 = gunichar* function(const(gunichar2)* str, glong len, glong* items_read, glong* items_written, GError** error);			
390         alias da_g_utf16_to_utf8 = gchar* function(const(gunichar2)* str, glong len, glong* items_read, glong* items_written, GError** error);				
391         alias da_g_ucs4_to_utf16 = gunichar2* function(const(gunichar)* str, glong len, glong* items_read, glong* items_written, GError** error);			
392         alias da_g_ucs4_to_utf8 = gchar* function(const(gunichar)* str, glong len, glong* items_read, glong* items_written, GError** error);				
393         alias da_g_unichar_to_utf8 = gint function(gunichar c, gchar* outbuf);																				
394         alias da_g_utf8_validate = gboolean function(const(gchar)* str, gssize max_len, const(gchar*)* end);												
395         alias da_g_utf8_strup = gchar* function(const(gchar)* str, gssize len);																				
396         alias da_g_utf8_strdown = gchar* function(const(gchar)* str, gssize len);																			
397         alias da_g_utf8_casefold = gchar* function(const(gchar)* str, gssize len);																			
398         alias da_g_utf8_normalize = gchar* function(const(gchar)* str, gssize len, GNormalizeMode mode);													
399         alias da_g_utf8_collate = gint function(const(gchar)* str1, const(gchar)* str2);																	
400         alias da_g_utf8_collate_key = gchar* function(const(gchar)* str, gssize len);																		
401         alias da_g_utf8_collate_key_for_filename = gchar* function(const(gchar)* str, gssize len);															
402         alias da__g_utf8_make_valid = gchar* function(const(gchar)* name);	
403     }
404 
405     __gshared
406     {
407         da_g_unicode_script_to_iso15924 g_unicode_script_to_iso15924; 
408         da_g_unicode_script_from_iso15924 g_unicode_script_from_iso15924; 
409         da_g_unichar_isalnum g_unichar_isalnum; 
410         da_g_unichar_isalpha g_unichar_isalpha; 
411         da_g_unichar_iscntrl g_unichar_iscntrl; 
412         da_g_unichar_isdigit g_unichar_isdigit; 
413         da_g_unichar_isgraph g_unichar_isgraph; 
414         da_g_unichar_islower g_unichar_islower; 
415         da_g_unichar_isprint g_unichar_isprint; 
416         da_g_unichar_ispunct g_unichar_ispunct; 
417         da_g_unichar_isspace g_unichar_isspace; 
418         da_g_unichar_isupper g_unichar_isupper; 
419         da_g_unichar_isxdigit g_unichar_isxdigit; 
420         da_g_unichar_istitle g_unichar_istitle; 
421         da_g_unichar_isdefined g_unichar_isdefined; 
422         da_g_unichar_iswide g_unichar_iswide; 
423         da_g_unichar_iswide_cjk g_unichar_iswide_cjk; 
424         da_g_unichar_iszerowidth g_unichar_iszerowidth; 
425         da_g_unichar_ismark g_unichar_ismark; 
426         da_g_unichar_toupper g_unichar_toupper; 
427         da_g_unichar_tolower g_unichar_tolower; 
428         da_g_unichar_totitle g_unichar_totitle; 
429         da_g_unichar_digit_value g_unichar_digit_value; 
430         da_g_unichar_xdigit_value g_unichar_xdigit_value; 
431         da_g_unichar_type g_unichar_type; 
432         da_g_unichar_break_type g_unichar_break_type; 
433         da_g_unichar_combining_class g_unichar_combining_class; 
434         da_g_unichar_get_mirror_char g_unichar_get_mirror_char; 
435         da_g_unichar_get_script g_unichar_get_script; 
436         da_g_unichar_validate g_unichar_validate; 
437         da_g_unichar_compose g_unichar_compose; 
438         da_g_unichar_decompose g_unichar_decompose; 
439         da_g_unichar_fully_decompose g_unichar_fully_decompose; 
440         da_g_unicode_canonical_ordering g_unicode_canonical_ordering; 
441         da_g_unicode_canonical_decomposition g_unicode_canonical_decomposition; 
442         da_g_utf8_get_char g_utf8_get_char; 
443         da_g_utf8_get_char_validated g_utf8_get_char_validated; 
444         da_g_utf8_offset_to_pointer g_utf8_offset_to_pointer; 
445         da_g_utf8_pointer_to_offset g_utf8_pointer_to_offset; 
446         da_g_utf8_prev_char g_utf8_prev_char; 
447         da_g_utf8_find_next_char g_utf8_find_next_char; 
448         da_g_utf8_find_prev_char g_utf8_find_prev_char; 
449         da_g_utf8_strlen g_utf8_strlen; 
450         da_g_utf8_substring g_utf8_substring; 
451         da_g_utf8_strncpy g_utf8_strncpy; 
452         da_g_utf8_strchr g_utf8_strchr; 
453         da_g_utf8_strrchr g_utf8_strrchr; 
454         da_g_utf8_strreverse g_utf8_strreverse; 
455         da_g_utf8_to_utf16 g_utf8_to_utf16; 
456         da_g_utf8_to_ucs4 g_utf8_to_ucs4; 
457         da_g_utf8_to_ucs4_fast g_utf8_to_ucs4_fast; 
458         da_g_utf16_to_ucs4 g_utf16_to_ucs4; 
459         da_g_utf16_to_utf8 g_utf16_to_utf8; 
460         da_g_ucs4_to_utf16 g_ucs4_to_utf16; 
461         da_g_ucs4_to_utf8 g_ucs4_to_utf8; 
462         da_g_unichar_to_utf8 g_unichar_to_utf8; 
463         da_g_utf8_validate g_utf8_validate; 
464         da_g_utf8_strup g_utf8_strup; 
465         da_g_utf8_strdown g_utf8_strdown; 
466         da_g_utf8_casefold g_utf8_casefold; 
467         da_g_utf8_normalize g_utf8_normalize; 
468         da_g_utf8_collate g_utf8_collate; 
469         da_g_utf8_collate_key g_utf8_collate_key; 
470         da_g_utf8_collate_key_for_filename g_utf8_collate_key_for_filename; 
471         da__g_utf8_make_valid _g_utf8_make_valid; 
472     }
473 }